package com.tyk.bookstore.back.logistics.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.tyk.bookstore.back.logistics.manager.excel.model.WaybillExcelVo;
import com.tyk.bookstore.back.logistics.model.entity.WaybillDo;
import com.tyk.bookstore.back.logistics.model.enume.WaybillState;
import com.tyk.bookstore.back.logistics.model.query.WaybillPageQuery;
import com.tyk.bookstore.back.logistics.model.query.WaybillUpdateQuery;
import com.tyk.bookstore.back.logistics.model.vo.WaybillPageVo;
import com.tyk.bookstore.back.logistics.model.vo.WaybillVo;

import java.util.List;
import java.util.Set;


/**
 * @author tyk
 * @description 运单
 */
public interface WaybillService extends IService<WaybillDo> {

    /**
     * 获取运单详情
     */
    WaybillVo getById(Long id);

    /**
     * 分页查询运单
     */
    WaybillPageVo getPage(WaybillPageQuery query);

    /**
     * 更新运单状态
     */
    void updateById(WaybillUpdateQuery query);

    /**
     * 删除运单
     */
    void deleteById(Long id);

    /**
     * 批量删除运单
     */
    void deleteBatchIdSet(Set<Long> idSet);

    /**
     * 修改运单状态
     */
    void changeState(Long id, WaybillState state);
    /**
     * 获取Excel导出数据
     *
     * @param query 同分页查询参数
     * @return Excel导出数据
     */
    List<WaybillExcelVo> getWaybillExcelVoList(WaybillPageQuery query);
}
